iT邦幫忙

2023 iThome 鐵人賽

DAY 25
0

前言

歡迎大家再次回來我們這個系列,昨天我們已經介紹過幾個基本可以用在 Face recognition 上的 loss 了,如下圖如人類在 Face Recognition領域上所研究的 loss 發展圖中的 Softmax loss,Contrastive loss,Triplet-loss,Center-loss以及feature normalize的研究:
https://ithelp.ithome.com.tw/upload/images/20231009/201205498m22RzfT8P.png
那今天我們將繼續往下走來到近來最流行的 loss 類別--Large Marginal Loss

Large Marginal Loss

發展的由來

Large Marginal Loss 這個 loss 其實是由 softmax loss(cross entropy loss) 所發展而來的,並且有多種變形,毫不畏言的是基本上你聽過目前有名的 face recognition loss 都是在這個範疇內!我們們先來講講這個變形的由來:

   Step.1 一個基本的 softmax loss如下:
      https://ithelp.ithome.com.tw/upload/images/20231010/20120549woygzdt6yo.png
      其中 w & b 為最後一層 fully connected layer 的參數,如下圖:
      https://ithelp.ithome.com.tw/upload/images/20231010/20120549Deccd2RXEA.png
   Step.2 展開 softmax loss 公式成為以下形式:
      https://ithelp.ithome.com.tw/upload/images/20231010/20120549YwRSjlzhMP.png
      其中https://ithelp.ithome.com.tw/upload/images/20231010/20120549PUvQSdGCrI.png
      這個視角你可以想做:

 每個 w 為那個類的中心vector,那我們的訓練目標其實就是希望每個image壓出來的feature都可以與他那一類的中心 vector 相近
 另外這個 w 舞們也可以稱作 proxy,我們是視作這個類的中心代理(前篇 center loss的中心為各個訓練資料的 feature 的平均值)

   Step.3 我們把fully connected layerweight(w)normalize並假設這個 bias 為 0 :
      那整體的 softmax loss 就可以改成modified softmax loss,如下圖:
      https://ithelp.ithome.com.tw/upload/images/20231010/20120549utWHNvaOKm.png
      為什麼可以把 weightnormalize 主要是normface實驗發現有做 normalize更好(這也稱為 Norm-softmax),詳可見昨天介紹或下方實驗:
      https://ithelp.ithome.com.tw/upload/images/20231010/20120549qBmSvnpHrP.png

      為什麼更進一步可以把 bias 設成 0 主要是Sphereface實驗發現可以刪掉並且 performance 沒什麼變化甚至有時表現可能可以更好!
      而以上這兩種修改法其實也正式分別為‵Normface‵ 以及 Sphereface

   Step.4 加入 Margin
      經過上述步驟,感覺好像只是改寫 softmax loss 的形式而已,還沒有什麼大改?你說得沒錯,我們並還沒加入 margin 的概念,我們先觀察下圖的畫面:
      https://ithelp.ithome.com.tw/upload/images/20231010/20120549jmNwAnoavy.png
      我們可以看到上述左邊改版的 softmax 一樣只會找到各個類的類邊界,剛剛的分開就好,這個在 close-set時或許沒問題,但在Open-set就會發生兩人 feature 在空間中的交界處如果出現第三人的 feature會分不開,因此我們會希望在訓練時能夠像右邊的效果一樣,盡可能與自己的類中心靠近,因此這就需要引入 Margin 的概念,modefied softmax 可以繼續改寫成以下 marginal loss:
      https://ithelp.ithome.com.tw/upload/images/20231010/20120549F7kqONRxeD.png
      其中一共有三種主流變形,連同 softmax 其各自的關鍵參數如下:

      |Name | M1 |M2|M3
      |-----|----|--|--
      |Softmax loss | 1 |0|0
      |Sphereface|m1|0|0
      |Arcface|1|m2|0
      |Cosface|1|0|m3
      
      這當中,softmax 以及Shpereface已於前面小節介紹過了,舞們這裡介紹一下改變 M1 大小是否有幫助?如下圖,我們可以看到 m1越大的時候其實可以分得越開,後續的 Large Marginal loss基本上都會遵從大的 M1(ex.cosface & Arcface 實務上都是大 M1:
      https://ithelp.ithome.com.tw/upload/images/20231010/20120549maXQIflSe8.png
      在參考更強大 margin 下我們有了 Cosface 以及 Arcface 這兩個非常經典的 Large Marginal loss那這兩個又是什麼的形式以及這兩個又熟強熟弱呢?

Cosface v.s Arcface

這個誰優誰劣其實不好說,那筆者根據自身經驗來跟大家說明:
   1.研究上(論文上)
      依照研究上我們最簡單可以直接參考主流 Benchmark測試集來看效果,那基本上一定是 Arcface會比較好,如下圖:
https://ithelp.ithome.com.tw/upload/images/20231010/20120549KoBKMTBfgd.png
   2.實務上
實務上,筆者自身經驗會是:

CosfaceArcface 簡單好用,並且更容易收斂

那關於為何會有這樣的效果,筆者目前還未完全掌握,但可以從以下兩部份講 CosFace 為何是個好選擇:
2-1. Cosface 收斂效果足以
會覺得 Cosface 不夠收斂可能是因為 Arcface 論文中這張圖:
https://ithelp.ithome.com.tw/upload/images/20231011/201205494p1j7huHrm.png
依照 Arcface 這張圖的說明當今天訓練資料與類中心今天達到黏在一起時(角度為0)Cosfacetarget logit 還不是 1(我們希望是 1 ,因為這樣 inner product 為貼在一起的意思),並且觀察 Cosface 的斜率也會擔憂這樣 gradient 的大小足夠大嗎?訓練出來的同類相似度夠大嗎?其實到不用擔心這一點,我們可以看到 Arcface 自己本身做的訓練追宗圖如下:
https://ithelp.ithome.com.tw/upload/images/20231011/20120549wlq8ojBNlg.png
可以看到其實 Arcface 到結束他也沒辦法讓角度為0,而這個角度差距我們拿 Cosface 的最貼緊的角度 inner product 結果 0.8 來算是差不多的!(可自行查一下 arccos(0.6) 是幾度)

2-2. marginal 反效果
如見下圖,我們可以看到當今天 arcface 在訓練時,訓練資料與類中心角度超過 135度時,他的 target logit會越來越大(target logit越大代表角度越小才對),這樣 gradient 會是相反的,你可以看到其他的 loss 像是 cosface 會是越來越小的
https://ithelp.ithome.com.tw/upload/images/20231010/20120549VaF3KkXohV.png

結語

我們今天介紹了 Face recogntion loss 中的 Large Marginal Loss ,並且介紹了其中幾個知名的變種以及由來,並針對 Cosface 以及 Arcface做了一個比較,希望能對大家更好了解 Face recognition 的訓練。歡迎大家明晚繼續回來!

Ref.

1.Wang, Feng, et al. "Normface: L2 hypersphere embedding for face verification." Proceedings of the 25th ACM international conference on Multimedia. 2017.
2.Liu, Weiyang, et al. "Sphereface: Deep hypersphere embedding for face recognition." Proceedings of the IEEE conference on computer vision and pattern recognition. 2017.
3.Deng, Jiankang, et al. "Arcface: Additive angular margin loss for deep face recognition." Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2019.
4.Wang, Hao, et al. "Cosface: Large margin cosine loss for deep face recognition." Proceedings of the IEEE conference on computer vision and pattern recognition. 2018.
5.Li, Xianyang, et al. "Airface: Lightweight and efficient model for face recognition." Proceedings of the IEEE/CVF International Conference on Computer Vision Workshops.2019.


上一篇
[第二十四夜] 人臉辨識 (Face Recognition):Loss 基礎介紹 Part.1
下一篇
[第二十六夜] 人臉辨識 (Face Recognition):Large marginal loss (Sphereface, Cosface , 以及 Arcface)訓練實做
系列文
電腦眼中的人臉--論近代人類都用電腦視覺技術在人臉上做了什麼30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言